// pages/login/login.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    userInfo: null,
    hasUserInfo: false,
    isLoading: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 检查是否已经登录
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo) {
      this.setData({
        userInfo: userInfo,
        hasUserInfo: true
      });
      
      // 已登录，跳转到首页
      this.navigateToHome();
    }
  },

  /**
   * 获取用户信息
   */
  getUserProfile: function () {
    if (this.data.isLoading) return;
    
    this.setData({ isLoading: true });
    
    // 小程序用户登录，获取openid
    this.getWxLoginInfo();
  },

  /**
   * 获取微信登录信息
   */
  getWxLoginInfo: function() {
    // 获取应用实例
    const app = getApp();
    
    // 先调用wx.login获取临时登录凭证
    wx.login({
      success: (loginRes) => {
        if (loginRes.code) {
          // 调用云函数登录，获取openid
          wx.cloud.callFunction({
            name: 'login',
            data: {},
            success: (res) => {
              console.log('云函数获取openid成功', res.result);
              const openid = res.result.openid;
              
              // 存储openid到本地
              wx.setStorageSync('openid', openid);
              app.globalData.openid = openid;
              
              // 创建用户记录
              this.createUserRecord(openid);
            },
            fail: (err) => {
              console.error('云函数获取openid失败', err);
              wx.showToast({
                title: '登录失败，请重试',
                icon: 'none'
              });
              this.setData({ isLoading: false });
            }
          });
        } else {
          console.error('登录失败', loginRes.errMsg);
          wx.showToast({
            title: '登录失败，请重试',
            icon: 'none'
          });
          this.setData({ isLoading: false });
        }
      },
      fail: (error) => {
        console.error('wx.login调用失败', error);
        wx.showToast({
          title: '登录失败，请重试',
          icon: 'none'
        });
        this.setData({ isLoading: false });
      }
    });
  },

  /**
   * 创建用户记录
   */
  async createUserRecord(openid) {
    try {
      // 创建默认用户信息
      const defaultUserInfo = {
        nickname: '厨房用户' + openid.substring(openid.length - 4),
        avatarUrl: '/imgs/chef-hat.svg',
        bio: '这个人很懒，还没有填写简介'
      };
      
      // 保存到本地存储
      wx.setStorageSync('userInfo', {
        openid: openid,
        ...defaultUserInfo
      });
      
      // 更新应用全局数据
      const app = getApp();
      app.globalData.userInfo = {
        openid: openid,
        ...defaultUserInfo
      };
      app.globalData.isLoggedIn = true;
      
      // 初始化用户数据到云数据库
      await app.checkUserData(openid);
      
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true,
        isLoading: false
      });
      
      wx.showToast({
        title: '登录成功',
        icon: 'success',
        duration: 1500,
        success: () => {
          setTimeout(() => {
            // 登录成功，跳转到首页
            this.navigateToHome();
          }, 1500);
        }
      });
    } catch (error) {
      console.error('创建用户记录失败', error);
      wx.showToast({
        title: '登录失败，请重试',
        icon: 'none'
      });
      this.setData({ isLoading: false });
    }
  },

  /**
   * 跳转到首页
   */
  navigateToHome: function () {
    wx.switchTab({
      url: '/pages/kitchen/kitchen'
    });
  }
}) 